package br.com.baco.persistencia;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * Helper do android para criar e atualizar os bancos de dados do sqlite 
 * embarcado do android.
 * @author gabriel (<a href="mailto:gaaj1980@gmail.com">gaaj1980@gmail.com</a>)
 */

public class AndroidDatabaseOpenHelper extends SQLiteOpenHelper {
	
	private static final String NOME_DB = "BacoApp.db";
	private static final int VERSAO = 3;
	
	private static final String SQL_DROP_USUARIO = "DROP TABLE IF EXISTS usuarios;";
	private static final String SQL_DROP_EVENTO ="DROP TABLE IF EXISTS eventos;";
	private static final String SQL_DROP_RECURSO ="DROP TABLE IF EXISTS recursos;";
	
	private static final String SQL_CREATE_USUARIO = "CREATE TABLE usuarios("+
												   "id INTEGER PRIMARY KEY AUTOINCREMENT,"+
												   "nome TEXT,"+
												   "sobrenome TEXT,"+
												   "data_nasc TEXT"+
												");";
	private static final String SQL_CREATE_EVENTO = "CREATE TABLE eventos("+
												   "id INTEGER PRIMARY KEY AUTOINCREMENT,"+
												   "nome TEXT,"+
												   "data TEXT,"+
												   "horario TEXT,"+
												   "tipo TEXT,"+
												   "quant_convidados INTEGER,"+
												   "id_usuario INTEGER"+
												");";
private static final String SQL_CREATE_RECURSO = "CREATE TABLE recursos("+
												   "id INTEGER PRIMARY KEY AUTOINCREMENT,"+
												   "nome TEXT,"+
												   "descricao TEXT,"+
												   "tipo TEXT,"+
												   "preco NUMERIC,"+
												   "quantidade INTEGER,"+
												   "id_evento INTEGER"+
															");";
	
	/**
	 * Cria um helper para a cria��o e atualiza��o do BD.
	 * @param context o contexto
	 * @see SQLiteOpenHelper#SQLiteOpenHelper(Context, String, android.database.sqlite.SQLiteDatabase.CursorFactory, int)
	 */
	public AndroidDatabaseOpenHelper(Context context) {
		super(context , NOME_DB , null , VERSAO);
	}
	
	/**
	 * @see android.database.sqlite.SQLiteOpenHelper#onCreate(android.database.sqlite.SQLiteDatabase)
	 */
	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL(SQL_CREATE_USUARIO);
		db.execSQL(SQL_CREATE_EVENTO);
		db.execSQL(SQL_CREATE_RECURSO);
	}

	/**
	 * @see android.database.sqlite.SQLiteOpenHelper#onUpgrade(android.database.sqlite.SQLiteDatabase, int, int)
	 */
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		db.execSQL(SQL_DROP_USUARIO);
		db.execSQL(SQL_DROP_EVENTO);
		db.execSQL(SQL_DROP_RECURSO);
		onCreate(db);
	}
}